home *** CD-ROM | disk | FTP | other *** search
- #ifndef SYSTEM_SYSOBJECT_H
- #define SYSTEM_SYSOBJECT_H TRUE
-
- /*
- ** $VER: sysobject.h V1.0
- **
- ** (C) Copyright 1996-1998 DreamWorld Productions.
- ** All Rights Reserved.
- **
- */
-
- #ifndef DPKERNEL_H
- #include <dpkernel/dpkernel.h>
- #endif
-
- /****************************************************************************
- ** The SysObject structure.
- */
-
- #define VER_SYSOBJECT 1
- #define TAGS_SYSOBJECT ((ID_SPCTAGS<<16)|ID_SYSOBJECT)
-
- struct SysObject {
- struct Head Head;
- struct SysObject *Prev; /* Previous object in list */
- struct SysObject *Next; /* Next object in list */
- WORD ObjectID; /* ID of this object, eg ID_PICTURE if master, or ID_HIDDEN if child */
- WORD ClassID; /* Class reference ID, use ID_HIDDEN if no class */
- BYTE *Name; /* Standard name of the object, eg "Picture", "Universe"... */
-
- #ifdef _DCC
- LONG (*CopyToUnv)(__A0 struct Universe *, __A1 struct Head *);
- LONG (*CopyFromUnv)(__A0 struct Universe *, __A1 struct Head *);
- WORD (*CheckFile)(__A0 struct File *, __A1 APTR Buffer);
- struct Head * (*Load)(__A0 struct File *);
- LONG (*Show)(__A0 APTR Object);
- struct Head * (*Get)(__A0 struct Stats *);
- void (*Free)(__A0 APTR Object);
- LONG (*Init)(__A0 APTR Object, __A1 APTR Container);
- LONG (*Read)(__A0 APTR Object, __A1 APTR Buffer, __D0 LONG Length);
- LONG (*Write)(__A0 APTR Object, __A1 APTR Buffer, __D0 LONG Length);
- LONG (*Rename)(__A0 APTR Object __A1 BYTE *Name);
- void (*Hide)(__A0 APTR Object);
- void (*yy03)(void);
- LONG (*SaveToFile)(__A0 APTR Object, __A1 struct File *DestFile);
- LONG (*Query)(__A0 APTR Object);
- LONG (*Activate)(__A0 APTR Object);
- LONG (*Deactivate)(__A0 APTR Object);
- LONG (*Draw)(__A0 APTR Object);
- LONG (*Clear)(__A0 APTR Object);
- LONG (*Reset)(__A0 APTR Object);
- LONG (*Flush)(__A0 APTR Object);
- LONG (*TagTrigger)(__A0 LONG *TagPos, __A1 struct Head *);
- struct SysObject *Master; /* Reference to the master sysobject if this is a child */
- LONG yy00;
- void (*Unlock)(__A0 APTR Object);
- LONG (*DetachParent)(__A0 APTR Child, __A1 APTR Parent);
- LONG (*DetachChild)(__A0 APTR Child, __A1 APTR Parent);
- LONG (*Unhook)(__A0 APTR Object, __A1 APTR Chain);
- void (*MoveToBack)(__A0 APTR Object);
- void (*MoveToFront)(__A0 APTR Object);
- BYTE *FileExtension;
- BYTE *FileDesc;
- LONG (*Copy)(__A0 APTR Source, __A1 APTR Dest);
- ECODE (*Lock)(__A0 APTR Object, __D0 WORD LockCount);
- LONG (*Seek)(__A0 APTR Object, __D0 LONG Offset, __D1 WORD Position);
- ECODE (*AttemptExclusive)(__A0 APTR Object);
- LONG yy01;
- void (*FreeExclusive)(__A0 APTR Object);
-
- #else
- LIBPTR LONG (*CopyToUnv)(mreg(__a0) struct Universe *, mreg(__a1) struct Head *);
- LIBPTR LONG (*CopyFromUnv)(mreg(__a0) struct Universe *, mreg(__a1) struct Head *);
- LIBPTR WORD (*CheckFile)(mreg(__a0) struct File *, mreg(__a1) APTR Buffer);
- LIBPTR struct Head * (*Load)(mreg(__a0) struct File *);
- LIBPTR LONG (*Show)(mreg(__a0) APTR Object);
- LIBPTR struct Head * (*Get)(mreg(__a0) struct Stats *);
- LIBPTR void (*Free)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Init)(mreg(__a0) APTR Object, mreg(__a1) APTR Container);
- LIBPTR LONG (*Read)(mreg(__a0) APTR Object, mreg(__a1) APTR Buffer, mreg(__d0) LONG Length);
- LIBPTR LONG (*Write)(mreg(__a0) APTR Object, mreg(__a1) APTR Buffer, mreg(__d0) LONG Length);
- LIBPTR LONG (*Rename)(mreg(__a0) APTR Object, mreg(__a1) BYTE *Name);
- LIBPTR void (*Hide)(mreg(__a0) APTR Object);
- LIBPTR void (*yy03)(void);
- LIBPTR LONG (*SaveToFile)(mreg(__a0) APTR Object, mreg(__a1) struct File *DestFile);
- LIBPTR LONG (*Query)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Activate)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Deactivate)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Draw)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Clear)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Reset)(mreg(__a0) APTR Object);
- LIBPTR LONG (*Flush)(mreg(__a0) APTR Object);
- LIBPTR LONG (*TagTrigger)(mreg(__a0) LONG *TagPos, mreg(__a1) struct Head *);
- struct SysObject *Master;
- LONG yy00;
- LIBPTR void (*Unlock)(mreg(__a0) APTR Object);
- LIBPTR LONG (*DetachParent)(mreg(__a0) APTR Child, mreg(__a1) APTR Parent);
- LIBPTR LONG (*DetachChild)(mreg(__a0) APTR Child, mreg(__a1) APTR Parent);
- LIBPTR LONG (*Unhook)(mreg(__a0) APTR Object, mreg(__a1) APTR Chain);
- LIBPTR void (*MoveToBack)(mreg(__a0) APTR Object);
- LIBPTR void (*MoveToFront)(mreg(__a0) APTR Object);
- BYTE *FileExtension;
- BYTE *FileDesc;
- LIBPTR LONG (*Copy)(mreg(__a0) APTR Source, mreg(__a1) APTR Dest);
- LIBPTR ECODE (*Lock)(mreg(__a0) APTR Object, mreg(__d0) WORD LockCount);
- LIBPTR LONG (*Seek)(mreg(__a0) APTR Object, mreg(__d0) LONG Offset, mreg(__d1) WORD Position);
- LIBPTR ECODE (*AttemptExclusive)(mreg(__a0) APTR Object);
- LONG yy01;
- LIBPTR void (*FreeExclusive)(mreg(__a0) APTR Object);
- #endif
- };
-
- #define SOA_Prev (TAPTR|12)
- #define SOA_Next (TAPTR|16)
- #define SOA_CopyToUnv (TAPTR|28)
- #define SOA_CopyFromUnv (TAPTR|32)
- #define SOA_CheckFile (TAPTR|36)
- #define SOA_Load (TAPTR|40)
- #define SOA_Show (TAPTR|44)
- #define SOA_Get (TAPTR|48)
- #define SOA_Free (TAPTR|52)
- #define SOA_Init (TAPTR|56)
- #define SOA_Read (TAPTR|60)
- #define SOA_Write (TAPTR|64)
- #define SOA_Rename (TAPTR|68)
- #define SOA_Hide (TAPTR|72)
- #define SOA_yy03 (TAPTR|76)
- #define SOA_SaveToFile (TAPTR|80)
- #define SOA_Query (TAPTR|84)
- #define SOA_Activate (TAPTR|88)
- #define SOA_Deactivate (TAPTR|92)
- #define SOA_Draw (TAPTR|96)
- #define SOA_Clear (TAPTR|100)
- #define SOA_Reset (TAPTR|104)
- #define SOA_Flush (TAPTR|108)
- #define SOA_TagTrigger (TAPTR|112)
- #define SOA_Master (TAPTR|116)
- #define SOA_yy00 (TAPTR|120)
- #define SOA_Unlock (TAPTR|124)
- #define SOA_DetachParent (TAPTR|128)
- #define SOA_DetachChild (TAPTR|132)
- #define SOA_Unhook (TAPTR|136)
- #define SOA_MoveToBack (TAPTR|140)
- #define SOA_MoveToFront (TAPTR|144)
- #define SOA_FileExtension (TAPTR|148)
- #define SOA_FileDesc (TAPTR|152)
- #define SOA_Copy (TAPTR|156)
- #define SOA_Lock (TAPTR|160)
- #define SOA_Seek (TAPTR|164)
- #define SOA_AttemptExclusive (TAPTR|168)
- #define SOA_yy01 (TAPTR|172)
- #define SOA_FreeExclusive (TAPTR|176)
-
- #endif /* SYSTEM_SYSOBJECT_H */
-